The use of single bit semaphores for signalling between computer implemented processes is well known. In general, a single bit semaphore is used in a scheme to prevent multiple processes from simultaneously accessing a single resource of a system. It is important that a single bit semaphore be accessible only in an "atomic" manner. That is, it must be guaranteed that a semaphore cannot be modified by a second process between the time that a first process reads the semaphore and potentially modifies the semaphore.
One conventional mechanism for guaranteeing such exclusivity of access includes the use of a "lock" signal. For example, the x86 family of processors provide a lock instruction that provides a serialization mechanism such that a resource (as represented by the semaphore) is restricted for use by the holder of the lock (i.e., the process that executed the lock instruction). In particular, executing a lock instruction causes a lock signal to be asserted. While the lock signal is asserted, no other process can access the semaphore. This exclusion is guaranteed by additional circuitry that stalls simultaneous access to the memory that holds the semaphore between the read and the write of the test and set operation.
While some processor architectures include the lock signal, other processors do not. With such processors, a similar mechanism may be implemented using a general purpose I/O signal assigned to generate the lock signal. It is also known to implement a lock mechanism using a dedicated hardware circuit, as disclosed by Dror in U.S. Pat. No. 5,276,886.